package com.kuang.annotation;

public class Test05 {
    static {
        System.out.println("Main被加载");
    }

    public static void main(String[] args) throws ClassNotFoundException {
        //1主动引用
//        Son son = new Son();
        //反射引用
//        Class.forName("com.kuang.annotation.Son");

        //不会产生类的引用的方法；
        //1 子类去调用父类的静态变量或方法
//        Son.show();
//        System.out.println(Son.b);
        //2通过数组定义类引用，不会触发此类的初始化
//        Son[] array = new Son[5];
        //3引用常量不会调用类的初始化，常量在链接阶段就已经调用类的常量池中
        System.out.println(Son.M);

    }
}
class Father{
    static void show(){
        System.out.println("父类的静态方法");
    }
    static int b = 1;
    static {
        System.out.println("父类被引用");
    }
}
class Son extends Father{
    static {
        System.out.println("子类被加载");
        m = 300;
    }
    static int m=100;
    static final int M = 1;
}

